The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Financial advisors, such as registered investment advisors (RIAs) and their firms, institutional investors, and others often analyze financial data associated with client, customer, or personal assets held by various different financial institutions. In order to analyze the potentially vast number of financial transactions that may occur with the assets, a computer-implemented financial analysis system may be utilized for purposes of analysis and reporting on transaction data obtained from those financial institutions. For example, transaction data obtained from a financial institution may record any number of financial transactions affecting a particular set of assets such as, for example, stock purchases, stock splits, foreign exchange transactions, company mergers, fund contributions, or any other recorded financial transaction.
Typically, transaction data obtained from a financial institution is in a table or other similar format, with each row in the table representing a particular transaction event and labeled with a transaction type identifier from a large set of possible transaction types defined by the particular institution. For example, a foreign currency exchange transaction recorded by one financial institution may be represented by multiple rows in a table: one row corresponding to an amount of one currency leaving an account and labeled with a “foreign exchange out” identifier, and a second row corresponding amount of a second currency being deposited into an account and labeled with a “foreign exchange in” identifier. As illustrated by the foregoing example, transactions that are conceptually a single act may be represented by particular financial institutions in multiple rows identified by different transaction type identifiers. Further, different financial institutions may represent particular financial transactions using varying numbers of rows and using inconsistent identifiers.
The representation of financial transaction data is this manner presents a number of challenges to efficiently representing, storing, analyzing, and implementing other financial performance calculations on the data in a computer-implemented financial analysis system. For example, financial performance calculations defined in terms of the transaction types presented by the financial institutions may result in burdensome refactoring of the computer program code that specifies operation of the system each time new transaction types are added or modified by a particular financial institution. Further, cumbersome and error-prone reconciliation logic is often required in order to properly account for the varying transaction representations across financial institutions.